//判断一个数是否迷人
/*给你一个三位数整数 n 。

如果经过以下修改得到的数字 恰好 包含数字 1 到 9 各一次且不包含任何 0 ，那么我们称数字 n 是 迷人的 ：

将 n 与数字 2 * n 和 3 * n 连接 。
如果 n 是迷人的，返回 true，否则返回 false 。

连接 两个数字表示把它们首尾相接连在一起。比方说 121 和 371 连接得到 121371 。
100 <= n <= 999*/
class Solution {
public:
    bool isFascinating(int n) {
        int hash[10] = {0};
        int n1 = 2 * n;
        int n2 = 3 * n;
        while (n) {
            hash[n % 10]++;
            if (hash[n % 10] > 1 || n % 10 == 0)
                return false;
            n /= 10;
        }
        while (n1) {
            hash[n1 % 10]++;
            if (hash[n1 % 10] > 1 || n1 % 10 == 0)
                return false;
            n1 /= 10;
        }
        while (n2) {
            hash[n2 % 10]++;
            if (hash[n2 % 10] > 1 || n2 % 10 == 0)
                return false;
            n2 /= 10;
        }
        return true;
    }
};



//唯一元素的和
/*给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。

请你返回 nums 中唯一元素的 和 。
1 <= nums.length <= 100
1 <= nums[i] <= 100*/
class Solution {
public:
    int sumOfUnique(vector<int>& nums) {
        int hahs[101] = {0};
        for (auto i : nums) {
            hahs[i]++;
        }
        int sum = 0;
        for (auto i : nums) {
            if (hahs[i] == 1)
                sum += i;
        }
        return sum;
    }
};